﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Windows.Controls;
using System.Windows.Data;
using SoftSource.MVVMC;

namespace SoftSource.Controls
{
    public interface IAutoGridEditorViewModelConsume : IViewModelConsume, IEditorConsume<object>
    {
        Func<object> Add { get; }
        PagedCollectionView Values { get; }
        Action<object, Action> Delete { get; }
        Action<DataGridAutoGeneratingColumnEventArgs> OnAutoGenerating { get; }
    }

    public interface IAutoGridEditorViewModelService : IViewModelService, IEditorService<object>
    {
        Func<object> Add { get; set; }
        IEnumerable Collection { get; set; }
        Action<object, Action> Delete { get; set; }
        SortDescriptionCollection SortDescriptions { get; }
        Action<DataGridAutoGeneratingColumnEventArgs> OnAutoGenerating { get; set; }
    }

    public interface IAutoGridEditorViewModel : 
        IViewModel, 
        IAutoGridEditorViewModelConsume, 
        IAutoGridEditorViewModelService, 
        IEditor<object>
    {
    }
}
